// 导入自定义的request模块，用于发起网络请求
import request from './request'

/**
 * 获取手机验证码
 * @param {string} phone - 接收验证码的手机号码
 * @returns {Promise} - 返回一个Promise对象，包含请求结果
 * 说明：通过GET请求向服务器发送获取验证码的请求，将手机号码作为查询参数传递
 */
export const queryVerificationCode = (phone) => {
  return request.get(`/user/code?phone=${phone}`)
}

/**
 * 通过验证码登录
 * @param {string} phone - 登录使用的手机号码
 * @param {string} code - 收到的验证码
 * @returns {Promise} - 返回一个Promise对象，包含登录结果
 * 说明：通过POST请求提交登录信息，请求体中包含手机号码和验证码
 */
export const loginByVerificationCode = (phone, code) => {
  return request.post("/user/login/code", {
    phone: phone,
    code: code
  })
}

// 获取用户简要信息
/**
 * 请求用户的简要信息
 * @returns {Promise} - 返回一个Promise对象，包含用户简要信息的请求结果
 * 说明：通过GET请求从服务器获取当前登录用户的简要信息，无需传递参数
 */
export const queryUserBriefInfo = () => {
  return request.get('/user/info')
}

/**
 * 通过微信登录凭证(code)获取用户登录状态
 *
 * @param {string} code - 微信登录接口返回的临时登录凭证，有效期约5分钟，且只能使用一次
 * @returns {Promise} - 返回一个Promise对象，包含接口请求结果
 *                      成功时响应数据通常包含用户标识(如openid)、登录状态标识(如token)等
 *                      失败时包含错误信息
 *
 * 说明：该函数通过调用后端接口，将微信登录获取的code发送到服务器，
 * 由服务器向微信服务器换取用户唯一标识(openid)等信息，完成用户登录流程
 */
export const loginByWeChatCode = (code) => {
  // 调用封装的request工具的GET方法，请求后端微信登录接口
  return request.get(`/user/login/wechat?code=${code}`)
}

export const loginQucikly = (code) => {
  return request.post(`/user/quickly/login?code=${code}`)
}